<?php
require_once 'FModel/Common/BaseFactory.php';

final class AdminDaoFactory extends BaseFactory {
	private static $instance = null;
	
	const SCOPE = 'AdminDao';
	
	/**
	 * @return AdminDaoFactory
	 */
	public static function getInstance() {
		if (!self::$instance) {
			self::$instance = new self();
		}
		return self::$instance;
	}
	
	/**
	 * @return AdminUserDao
	 */
	public function createAdminUserDao() {
		return $this->container->createObjectInstance(self::SCOPE, 'AdminUserDao', 'Models/Admin/Dao/AdminUserDao.php');
	}
	
	/**
	 * @return AdminSessionDao
	 */
	public function createAdminSessionDao() {
		return $this->container->createObjectInstance(self::SCOPE, 'AdminSessionDao', 'Models/Admin/Dao/AdminSessionDao.php');
	}
	
	/**
	 * @return AdminPermissionDao
	 */
	public function createAdminPermissionDao() {
		return $this->container->createObjectInstance(self::SCOPE, 'AdminPermissionDao', 'Models/Admin/Dao/AdminPermissionDao.php');
	}
	
	/**
	 * @return AdminUserPermissionDao
	 */
	public function createAdminUserPermissionDao() {
		return $this->container->createObjectInstance(self::SCOPE, 'AdminUserPermissionDao', 'Models/Admin/Dao/AdminUserPermissionDao.php');
	}
	
	/**
	 * @return AdminLogDao
	 */
	public function createAdminLogDao() {
		return $this->container->createObjectInstance(self::SCOPE, 'AdminLogDao', 'Models/Admin/Dao/AdminLogDao.php');
	}
}
